-- @owner: songjing20
-- @date: 2022/12/27
-- @testpoint: 创建函数合理报错，查看报错信息和具体位置

--step1:利用参数名用 PL/pgSQL 自增一个整数，不写分号;expect:报错位置在end前
create or replace function func_increment_plsql(i integer) returns integer as $$
        begin
                return i + 1
        end;
$$ language plpgsql;
/

--step2:返回record类型，plpgsql写成pl/pgsql，pl/pgsql处报错;expect:/处报错
create or replace function func_increment_sql(i int, out result_1 bigint, out result_2 bigint)
returns setof record
as $$
begin
    result_1 = i + 1;
    result_2 = i * 10;
return next;
end;
$$language pl/pgsql;
/

--step3:返回一个包含多个输出参数的记录。is处不写引号，查看报错位置和信息是否正确;expect:报错位置在text前
create function func_dup_sql(in int, out f1 int, out f2 text)
    as $$ select $1, cast($1 as text) ||  is text $$
    language sql;
/
